// src/main/java/sn/edu/tju/elm/repository/VirtualWalletRepository.java
package cn.edu.tju.elm.repository;

import cn.edu.tju.elm.model.VirtualWallet;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.Optional;

@Repository
public interface VirtualWalletRepository extends JpaRepository<VirtualWallet, Long> {
    
    /**
     * 根据用户ID查找钱包
     */
    Optional<VirtualWallet> findByUserId(Long userId);
    
    /**
     * 检查用户是否已有钱包
     */
    boolean existsByUserId(Long userId);
    
    /**
     * 根据用户ID锁定钱包（用于事务操作）
     */
    @Query("SELECT w FROM VirtualWallet w WHERE w.userId = :userId")
    Optional<VirtualWallet> findByUserIdWithLock(@Param("userId") Long userId);
}